package com.spark.invoicings.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

import lombok.Data;

/**
 * 进项发票表
 * 
 * @author sunyan
 * @email sunyan@gmail.com
 * @date 2024-06-13 11:10:42
 */
@Data
@TableName("t_finance_input_invoice")
public class InputInvoice implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 进项发票ID
	 */
	@TableId(type = IdType.AUTO)
	private Integer invoiceId;
	/**
	 * 发票状态：1-待审批，2-已通过，3-已驳回，4-已作废，5-已撤销
	 */
	private Integer invoiceStatusId;
	/**
	 * 供应商ID
	 */
	private Integer supplierId;
	/**
	 * 采购订单ID
	 */
	private Integer purchaseOrderId;
	/**
	 * 发票金额
	 */
	private double invoiceAmount;
	/**
	 * 发票附件
	 */
	private String invoiceAttachment;
	/**
	 * 发票类型：专票，普票
	 */
	private Integer invoiceTypeId;
	/**
	 * 开票日期
	 */
	private Date billingDate;
	/**
	 * 录入人员
	 */
	private String entryClerk;

	/**
	 * 审批人
	 * */
	private String approver;
	/**
	 * 审批时间
	 * */
	private String approvalTime;

	/**
	 * 供应商表关联对象
	 * */
	@TableField(exist = false)
	private ProcuredSupplier procuredSupplier;

	/**
	 * 采购订单表关联对象
	 * */
	@TableField(exist = false)
	private Order order;

	/**
	 * 字典数据表关联对象
	 * */
	@TableField(exist = false)
	private List<DictData> dictData;

	public String getApprover() {
		return approver;
	}

	public void setApprover(String approver) {
		this.approver = approver;
	}

	public String getApprovalTime() {
		return approvalTime;
	}

	public void setApprovalTime(String approvalTime) {
		this.approvalTime = approvalTime;
	}

	public Integer getInvoiceId() {
		return invoiceId;
	}

	public void setInvoiceId(Integer invoiceId) {
		this.invoiceId = invoiceId;
	}

	public Integer getInvoiceStatusId() {
		return invoiceStatusId;
	}

	public void setInvoiceStatusId(Integer invoiceStatusId) {
		this.invoiceStatusId = invoiceStatusId;
	}

	public Integer getSupplierId() {
		return supplierId;
	}

	public void setSupplierId(Integer supplierId) {
		this.supplierId = supplierId;
	}

	public Integer getPurchaseOrderId() {
		return purchaseOrderId;
	}

	public void setPurchaseOrderId(Integer purchaseOrderId) {
		this.purchaseOrderId = purchaseOrderId;
	}

	public double getInvoiceAmount() {
		return invoiceAmount;
	}

	public void setInvoiceAmount(double invoiceAmount) {
		this.invoiceAmount = invoiceAmount;
	}

	public String getInvoiceAttachment() {
		return invoiceAttachment;
	}

	public void setInvoiceAttachment(String invoiceAttachment) {
		this.invoiceAttachment = invoiceAttachment;
	}

	public Integer getInvoiceTypeId() {
		return invoiceTypeId;
	}

	public void setInvoiceTypeId(Integer invoiceTypeId) {
		this.invoiceTypeId = invoiceTypeId;
	}

	public Date getBillingDate() {
		return billingDate;
	}

	public void setBillingDate(Date billingDate) {
		this.billingDate = billingDate;
	}

	public String getEntryClerk() {
		return entryClerk;
	}

	public void setEntryClerk(String entryClerk) {
		this.entryClerk = entryClerk;
	}

	public ProcuredSupplier getProcuredSupplier() {
		return procuredSupplier;
	}

	public void setProcuredSupplier(ProcuredSupplier procuredSupplier) {
		this.procuredSupplier = procuredSupplier;
	}

	public Order getOrder() {
		return order;
	}

	public void setOrder(Order order) {
		this.order = order;
	}

	public List<DictData> getDictData() {
		return dictData;
	}

	public void setDictData(List<DictData> dictData) {
		this.dictData = dictData;
	}
}
